# 导入face_recognition模块
import face_recognition
from urllib.request import urlopen
import PIL.Image
import numpy as np
import io
import redis

def getImageByUrl(url):
    image_bytes = urlopen(url).read()
    data_stream = io.BytesIO(image_bytes)
    im = PIL.Image.open(data_stream)
    im = im.convert('RGB')
    return  np.array(im)
url1 = 'http://pic1.win4000.com/pic/8/f9/f1e25c2cec.jpg'
url2 = 'http://pic1.win4000.com/pic/8/c7/a109698abf.jpg'

# //redis
r = redis.StrictRedis(host='localhost', port=6379, db=0)

# 读取队列内的任务

# 执行注册
# 将注册用户的向量数据存入数据库（注册队列内/接口返回）


# 读取队列内的任务
# 执行照片分类
# 将照片内的人脸获取出来（多个）
# 获取每个人脸的向量
# 循环遍历向量对比并把匹配上的用户ID返回到队列、接口返回










known_image = getImageByUrl(url1)
unknown_image = getImageByUrl(url2)
  
# 识别图像中出现的人脸
# 获取每个图像文件中每个面部的面部编码
# known_image = face_recognition.load_image_file("images/huge/huge_1.jpg")
# unknown_image = face_recognition.load_image_file("images/huge/huge_3.jpg")
 
# 由于每个图像中可能有多个人脸，所以返回一个编码列表。
# 但是事先知道每个图像只有一个人脸，每个图像中的第一个编码，取索引0。
biden_encoding = face_recognition.face_encodings(known_image)[0]
unknown_encoding = face_recognition.face_encodings(unknown_image)[0]
print(biden_encoding)
print(unknown_encoding)

# 获取比较结果
result = face_recognition.compare_faces([biden_encoding],unknown_encoding)  
print(result)